package common

import (
	"errors"
	"fmt"
)

const (
	// type
	LoginType 		= "login"
	ResType 		= "res"
	REGISTERTYPE 	= "register"
	NOTIFYTYPE 		= "notify"
	SmsMessageType		= "smsMes"

	// code
	RegisterError = 500 // 用户未注册
	Success = 200 // success


)
var (
	// error
	ERROR_NO_REGISTER = errors.New("用户未注册")
	ERROR_USER_EXISTS = errors.New("用户已存在")
	ERROR_PASSWD = errors.New("密码错误")
	ERROR_ID = errors.New("用户名错误")
)


// User 用户信息
type User struct {
	UserId int `json:"userId"`
	UserName string `json:"userName"`
	UserPwd string `json:"userPwd"`
	UserStatus int `json:"userStatus"` // 用户状态
}

// 用户状态
const (
	Online = iota
	Offline
	Busy
)
type NotifyUser struct {
	Id int
	Status int
}

func (user User) String() string {
	return fmt.Sprintf("userId= %v, userName= %v, userPwd=%v\n", user.UserId, user.UserName, user.UserPwd)
}

// Message
type Message struct {
	Type string `json:"type"` // 消息类型
	Data string `json:"data"` // 数据
}

type Res struct {
	Code int `json:"code"` // 响应状态码
	Err string `json:"err"` // 返回错误信息
	Users []int `json:"users"` // 用户列表
}

// send & response message
type SmsMes struct {
	User
	Content string `json:"content"`
}
